package com.ilink.groundservice.service.Tool;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ilink.groundservice.entity.VO.AiX.AiXToolUsageRecordResponse;

import java.util.List;
import java.util.Map;

public interface AiXToolUsageRecordService {

    /**
     * 创建工具使用记录
     */
    Long createUsageRecord(Long toolId, String userId, String inputConfig, String sessionId, String ipAddress);

    /**
     * 更新工具使用记录
     */
    void updateUsageRecord(String sessionId, String status, String outputResult, String errorMessage);

    /**
     * 结束工具使用记录
     */
    void finishUsageRecord(String sessionId, String outputResult);

    /**
     * 获取用户工具使用记录
     */
    IPage<AiXToolUsageRecordResponse> getUserUsageRecords(String userId, Long toolId, Integer page, Integer size);

    /**
     * 根据会话ID获取使用记录
     */
    AiXToolUsageRecordResponse getUsageRecordBySessionId(String sessionId);

    /**
     * 获取用户工具使用统计
     */
    Map<String, Object> getUserUsageStatistics(String userId);

    /**
     * 获取用户最近使用的工具
     */
    List<AiXToolUsageRecordResponse> getRecentUsageRecords(String userId, Integer limit);

    /**
     * 获取工具使用排行
     */
    List<Map<String, Object>> getToolUsageRanking(Integer limit);
} 